"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("./types");
var not_1 = require("./not");
var simplify_1 = require("./simplify");
/**
 * 求差集
 */
function diff(expA, expB) {
    var reversedExpB = not_1.reverse(expB);
    if (reversedExpB.operator === types_1.Operator.EMPTY) {
        return expA;
    }
    return simplify_1.simplify({
        operator: types_1.BoolOperation.AND,
        args: [expA, reversedExpB],
    });
}
exports.diff = diff;
